java在循环并返回主方法时退出类?
好吧,我又回来了,我遇到了一堵新墙。我正在努力想办法摆脱ticketInput()
回到我的mainInputMenu()
。这不是我的全部代码,但为了收集我试图做的事情的想法,我认为这足以理解我的问题
主要方法----
public class Tickets {
public static void main(String[] args) {
mainInputMenu();
}
private static void mainInputMenu() {
Machine whichMachine = new Machine();
int machineNumber = Machine.readInput();
while ( machineNumber == 1 ) {
machineOne ( machineNumber );
}
while ( machineNumber == 2 ) {
Machine machineTwo = new Machine();
}
while ( machineNumber == 3 ) {
System.exit(0);
}
}
private static void machineOne(int machineNumber) {
Machine.option = 1;
Machine.writeOutput();
Machine.ticketInput();
}
}
在类文件中-------
public static void ticketInput() {
Scanner keyboard = new Scanner ( System.in );
String ticketCounter;
int counter = 0;
do {
System.out.printf ( "Your choice: " );
ticketCounter = keyboard.next();
if ( ticketCounter.matches ( "[0-9]+" ) ) {
counter = Integer.parseInt ( ticketCounter );
}
if ( counter < 1 || counter > 11 ) {
System.out.println ( "Try again!" );
}
} while ( counter < 1 || counter > 11 );
switch (counter) {
case 1:
rSelected = "Uptown";
break;
case 2:
rSelected = "Downtown";
break;
case 3:
aSum = aSum + 1;
break;
case 4:
if ( aSum > 0 ) {
aSum = aSum - 1;
}
else {
System.out.println ( "Cannot go below 0." );
}
break;
case 5:
cSum = cSum + 1;
break;
case 6:
if ( cSum > 0 ){
cSum = cSum -1;
}
else {
System.out.println ( "Cannot go below 0." );
}
break;
case 7:
creditSum = creditSum + 0.25;
break;
case 8:
creditSum = creditSum + 1.00;
break;
case 9:
creditSum = creditSum + 2.00;
break;
case 10:
System.out.println ( "-----------------\n"
+ "YOU GOT YOUR TICKET!!!\n"
+ "-----------------");
System.exit(0);
case 11:
//Return to main menu
default:
break;
}
我很感激任何能指导我解决这个问题的建议。我觉得这是一个简单的声明,我似乎无法从互联网上挖掘出来
# 1 楼答案
如果从函数
return
返回,它将返回调用函数对
System.exit(0)
的调用将终止您的应用程序所以,用
return;
替换System.exit(0)
您必须添加一个循环,以便在main方法中连续获取菜单和其他功能,如下所示:
# 2 楼答案
你可以这样更改mainInputMenu()
在这里,您可以反复运行machineOne()
现在你可以从ticketInput()返回